skip to main content

System properties

All other cloudlet properties are located within a system table of the cloudlet database, to the exclusion of the cloudlet dataSource configuration.

The properties inside @sys@properties table are divided into two large families:

  1. System: general system properties;
  2. Mail: properties related to the configuration of the component used by the cloudlet to send emails.

Type System properties #

WORKGROUP_PATH #

Indicates the path where the file system of the cloudlet is located.

Required: no
Default: false


MAX_NUM_OF_DATASET_OBJECTS #

Indicates the maximum limit of objects that can be present inside the livetable component in memory. When at the loading of this component the number of objects exceeds this limit, the client shows a pre-filter that forces the user to enter search parameters as long as the number of objects is not below this value.

Required: no
Default: 2000


NUMBER_OF_ATTEMPTS_TO_ACQUIRE_LOCKS #

Indicates the number of attempts the concurrency management system makes to acquire the locks of the objects involved in the changes to be persisted before performing a transaction on the cloudlet database.

Required: no
Default: 20


MILLIS_BETWEEN_ATTEMPTS_TO_ACQUIRE_LOCKS #

Indicates the wait time to retry acquiring locks to persist changes on the cloudlet database, following an acquisition failure.

Required: no
Default: 300


APPLICATION_LOCK_DURATION_MINUTES #

Indicates the time beyond which a lock acquired by a user for modifying or deleting an object is automatically released (unless the user who acquired the lock explicitly releases it).

Required: no
Default: 5


DATABASE_LOCK_DURATION_MINUTES #

Indicates the time after which a lock acquired by a user to persist changes to an object on the database is automatically released.

Required: no
Default: 30


MAX_INACTIVE_SESSION_TIME_MILLIS #

Indicates the time beyond which a server-side session on which no calls are made is removed.

Required: no
Default: 1 hour.


OBJECT_LOCK_REGISTRY_TYPE #

Indicates the type of the register that is used to acquire locks within the cloudlet.

Depending on the value expressed, the cloudlet will either use a component in MEMORY to manage the state of the cloudlet locks, or a component that persists the state on the DATABASE. The latter implementation will be mandatory to properly support the DEPLOYMENT_MODE of type MULTIPLE_NODES.

Required: no
Default: MEMORY


ENABLE_STOP_WATCH #

Setting this property to true enables stopwatches embedded within the cloudlet framework. Stopwatches are objects that allow to keep track of the execution time of some critical services of the cloudlet. For each stopwatch a maximum execution time is defined, after which the actual execution time of that service is logged inside the cloudlet with a specific message.

Required: no
Default: false.


STOP_WATCH_LOG_MAX_MILLIS #

Indicates the maximum execution time of some stopwatch inserted inside the cloudlet framework, after which the stopwatch itself will write in the log its actual execution time with an appropriate message.

Required: no
Default: 500


HANDLER_LOG_MAX_MILLIS #

Indicates the maximum execution time of the stopwatch inserted inside the framework for the invocation of the handler of the cloudlet; for these services a specific parameter has been defined in order to distinguish the execution time log of the services inside the framework from the one of the services inserted through plugins.

Required: no
Default: 500


ENABLE_SLOW_QUERY_LOG #

Setting this property to true enables the logging of slow queries. Queries whose execution time exceeds the value specified in the SLOW_QUERY_LOG_MAX_MILLIS property are logged, along with the stacktrace that caused them to be executed.

Required: no
Default: false.


SLOW_QUERY_LOG_MAX_MILLIS #

Indicates the maximum execution time of the stopwatch inserted inside the framework for the execution of the generated queries. This parameter only makes sense when the ENABLE_SLOW_QUERY_LOG property is true.

Required: no
Default: 500


SQL_DATETIME_TIMEZONE #

Indicates the timezone in which datetime fields are saved in the database.
In MariaDB the datatype ‘datetime’ is not time zoned, and a stringified representation of the datum is saved to the database. This property indicates in which is the reference timezone to interpret the datum in the database.

Required: no
Default: GMT


SQL_IN_PARAM_SIZE_THRESHOLD #

Indicates the threshold for the number of elements at which an IN or NOT IN clause is or is not applied to DB. For a number of elements less than or equal to the threshold, the clause is applied directly in the DBMS query, for a higher number it is applied in memory.
This parameter is taken into account only in queries generated and executed by the optimization algorithm currently present in the framework.

Required: no
Default: 20000


USE_RUNTIME_QUERY_GENERATOR #

Contains a comma separated string of class and role identifiers for which the runtime query generator is enabled to perform read queries.

The identifier of a class is given by $className.
The identifier of a role is given by $parentClassName_$roleName.

Required: no
Default: ""


ATTRIBUTE_LAZY_LOADING #

When set to true, enables loading attributes in lazy mode using the RQG.

Required: no
Default: false


ENABLE_PERFORMANCE_QUERY_LOG #

Enables cloudlet performance measurement functionality.

Required: no
Default: false.

Type Mail properties #

MAIL_SYSTEM_CLASS #

This is used to indicate the component that the cloudlet should use to send emails. It is currently used to allow injecting a mock component of the real implementation, effectively turning off the actual sending of emails (useful in validation cloudlets).

This property can have two possible values:

  1. com.fhoster.utils.MailSystem.
  2. com.fhoster.utils.DummyMailSystem.

Required: no


Custom Livebase properties have been added to handle SMTP authentication:

mail.smtp.auth #
(Boolean) Defines whether authentication should be used or not.
mail.smtp.auth.username #
(String) The authentication username.
mail.smtp.auth.password #
(String) The password of the SMTP.

All other definable properties refer to the standard ones used in java to configure email sending components:
https://javaee.github.io/javamail/docs/api/javax/mail/package-summary.html
https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html

Example of Google SMTP configuration #

PropertyValue
mail.smtp.hostsmtp.gmail.com
mail.smtp.port587
mail.smtp.authtrue
mail.smtp.starttls.enabletrue
mail.smtp.auth.usernameYOUR_SMPT_USERNAME
mail.smtp.auth.passwordYOUR_SMPT_PASSWORD